#!/bin/bash
###############################################################################
# @用例ID: 20230525-154056-556766079
# @用例名称: cronie-test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"
  
tc_setup() {
    msg "this is tc_setup"
     # @预置条件：cronie已安装

    assert_true command -v crontab
    assert_true command -v cronie
    return 0
}

do_test() {
    msg "this is do_test"
    
    # @测试步骤:1: 添加cron任务
    # @预期结果:1: 成功添加cron任务
    sudo bash -c 'crontab -l ; echo "* * * * * echo \"Hello, World!\"" | crontab -'
    assert_true [ $? -eq 0 ]

    # @测试步骤:2: 查看cron任务
    # @预期结果:2: 成功查看到添加的cron任务
    sudo crontab -l | grep "Hello, World!"
    assert_true [ $? -eq 0 ]

    # @测试步骤:3: 等待cron任务执行
    # @预期结果:3: cron任务执行成功，生成预期输出
    sleep 60
    grep "Hello, World!" /var/log/cron
    assert_true [ $? -eq 0 ]
    

    return 0
}



tc_teardown() {
    msg "this is tc_teardown"
    # 删除cron任务
    assert_true sudo crontab -r
    rm -rfv "$g_tmpdir" || return 1
    return 0
}


###############################################################################
tst_main "$@"
###############################################################################
